import {
  FolderMessage,
  FileAndFolderNodeMessage,
  FileAndFolderMessage,
} from '@/api/tree-folder';
import { FileVersion } from '@/views/file-manage/api';

interface FilterForm {
  /** 文件名称 */
  name: string;
}
export interface FileManageState {
  /** 上传文件弹窗开关 */
  uploadModal: boolean;
  /** 分享弹窗开关 */
  shareModal: boolean;
  /** 分享链接 */
  shareLinkInfo: string[];
  /** 附函弹窗开关 */
  enclosureModal: boolean;
  /** 分享链接 */
  enclosureInfo: object;
  /** 移动弹窗开关 */
  moveModal: boolean;
  /** 历史版本抽屉开关 */
  versionDrawer: boolean;
  /** 左侧目录树数据 */
  treeData: FileAndFolderNodeMessage[];
  /** 展开的树节点 */
  expandedKeys: (string | number)[];
  /** 选中的树节点 */
  selectedKeys: (string | number)[];
  /** 右侧列表数据 */
  tableData: FileAndFolderMessage[];
  /** 右侧列表加载状态 */
  tableLoading: boolean;
  /** table筛选器数据 */
  filterForm: FilterForm;
  /** table重命名输入框所在行 */
  renameIndex: number;
  /** tree重命名输入框key */
  renameKey: number | string;
  /** tree重命名输入框value */
  treeRenameValue: string;
  /** tree重命名value备份 */
  treeRenameBackup: string;
  /** 移动弹窗确定按钮事件 */
  sendMove: (values: () => Promise<any>) => boolean | Promise<boolean>;
  /** 当前选择文件夹 */
  currentFolder: FolderMessage | undefined;
  /** 当前点击文件 */
  currentFile: FileAndFolderMessage | undefined;
  /** 当前点击版本 */
  currentVersion: FileVersion | undefined;
  /** 文件版本列表 */
  fileVersionData: FileVersion[];
  /** 上传文件时，操作的文件夹信息 */
  selectedFolder: FolderMessage | undefined;
}
